#!/bin/bash 
# Alasdair McAndrew, Linux Journal
function integraali () { echo "
define simpson(a,b,n) {
auto h,sum_even,sum_odd;
h=(b-a)/(2*n);
sum_even=0;
sum_odd=0;
for (i=1;i<=n;i++) sum_odd=sum_odd+f(a+(2*i-1)*h);
for(i=1;i<n;i++) sum_even=sum_even+f(a+2*i*h);
return ((f(a)+f(b)+4*sum_odd+2*sum_even)*h/3);}

define f(x) { # esimerkkifunktio
return (e(-(x^2)));}

simpson(0,1,10)" | bc -l ;} # laskee väliltä 0-1. Ja 10:n palasta? arvo 100=> lasku kestää hieman kauemmin mutta arvo on oikeampi?

# cat xxx # echo $((1/0)) # virhekäsittelyn kokeilua
integraali




